package com.wei.util;

import javax.script.ScriptEngine;
import javax.script.ScriptEngineManager;
import javax.script.ScriptException;

public class MixAMSD {
    char arr[]={'*','/','+','-'};
    String s;
    double sum;

    public  String calculate() {//获取运算表达式
        int x = (int) (Math.random() * 4);
        int x1= (int) (Math.random() * 4);
        double number1 = (int) (Math.random() * 101);
        double number2 = (int) (Math.random() * 101);
        double number3 = (int) (Math.random() * 101);
        s= number1 +""+ arr[x] + number2+arr[x1]+number3;
        return s;
    }

    public  void test2(String str) throws ScriptException {//一个将字符串转化为数学公式的方法
        ScriptEngineManager manager = new ScriptEngineManager();//1. 脚本引擎
        //Java中执行脚本需要脚本语言对应的脚本引擎，JSR 223定义了脚本引擎的注册和查找机制。JavaSE6中自带了JavaScript语言的脚本引擎，基于Mozilla的Rhino实现，可以通过三种方式查找脚本引擎
        /**
         * 可以通过三种方式查找脚本引擎
         * 1.通过脚本名称获取： ScriptEngine engine = new ScriptEngineManager().getEngineByName("JavaScript");
         * 2.通过文件扩展名获取： ScriptEngine engine = new ScriptEngineManager().getEngineByExtension("js");
         * 3.通过MIME类型来获取： ScriptEngine engine = new ScriptEngineManager().getEngineByMimeType("text/javascript");
         */
        ScriptEngine engine = manager.getEngineByName("js");
        Object result = engine.eval(str);
        sum= Double.parseDouble(""+result);

    }

    public  double answer()throws ScriptException{//获取结果
        test2(s);
        sum = (double) Math.round(sum * 100) / 100;
        return sum;
    }

}
